#include <iostream>
#include <string>
#include <stack>
#include <unordered_map>

bool f(const std::string& s) {
    std::unordered_map<char, char> d{{'(', ')'}, {'[', ']'}, {'{', '}'}};
    std::stack<char> l;
    for (char c : s) {
        if (d.find(c) != d.end()) {
            l.push(c);
        } else if (!l.empty() && d[l.top()] == c) {
            l.pop();
        } else {
            return false;
        }
    }
    return l.empty();
}

int main() {
    std::string s;
    std::cout << "Введите последовательность скобок без пробелов:";
    std::cin >> s;
    std::cout << (f(s) ? "true" : "false") << std::endl;
    return 0;
}

